/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.treepoke.b2c.entityaccess.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Administrador
 */
@Entity
@Table(name = "comunidad")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Comunidad.findAll", query = "SELECT c FROM Comunidad c"),
    @NamedQuery(name = "Comunidad.findByIdComunidad", query = "SELECT c FROM Comunidad c WHERE c.idComunidad = :idComunidad"),
    @NamedQuery(name = "Comunidad.findByPinComunidad", query = "SELECT c FROM Comunidad c WHERE c.pinComunidad = :pinComunidad"),
    @NamedQuery(name = "Comunidad.findByGanacia", query = "SELECT c FROM Comunidad c WHERE c.ganacia = :ganacia"),
    @NamedQuery(name = "Comunidad.findByFechaCreacion", query = "SELECT c FROM Comunidad c WHERE c.fechaCreacion = :fechaCreacion"),
    @NamedQuery(name = "Comunidad.findByNombreComunidad", query = "SELECT c FROM Comunidad c WHERE c.nombreComunidad = :nombreComunidad")})
public class Comunidad implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idComunidad")
    private Integer idComunidad;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 45)
    @Column(name = "pinComunidad")
    private String pinComunidad;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "ganacia")
    private BigDecimal ganacia;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechaCreacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaCreacion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 45)
    @Column(name = "nombreComunidad")
    private String nombreComunidad;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "comunidadidComunidad")
    private Collection<Usuario> usuarioCollection;

    public Comunidad() {
    }

    public Comunidad(Integer idComunidad) {
        this.idComunidad = idComunidad;
    }

    public Comunidad(Integer idComunidad, String pinComunidad, BigDecimal ganacia, Date fechaCreacion, String nombreComunidad) {
        this.idComunidad = idComunidad;
        this.pinComunidad = pinComunidad;
        this.ganacia = ganacia;
        this.fechaCreacion = fechaCreacion;
        this.nombreComunidad = nombreComunidad;
    }

    public Integer getIdComunidad() {
        return idComunidad;
    }

    public void setIdComunidad(Integer idComunidad) {
        this.idComunidad = idComunidad;
    }

    public String getPinComunidad() {
        return pinComunidad;
    }

    public void setPinComunidad(String pinComunidad) {
        this.pinComunidad = pinComunidad;
    }

    public BigDecimal getGanacia() {
        return ganacia;
    }

    public void setGanacia(BigDecimal ganacia) {
        this.ganacia = ganacia;
    }

    public Date getFechaCreacion() {
        return fechaCreacion;
    }

    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }

    public String getNombreComunidad() {
        return nombreComunidad;
    }

    public void setNombreComunidad(String nombreComunidad) {
        this.nombreComunidad = nombreComunidad;
    }

    @XmlTransient
    public Collection<Usuario> getUsuarioCollection() {
        return usuarioCollection;
    }

    public void setUsuarioCollection(Collection<Usuario> usuarioCollection) {
        this.usuarioCollection = usuarioCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idComunidad != null ? idComunidad.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Comunidad)) {
            return false;
        }
        Comunidad other = (Comunidad) object;
        if ((this.idComunidad == null && other.idComunidad != null) || (this.idComunidad != null && !this.idComunidad.equals(other.idComunidad))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.treepoke.b2c.entityaccess.entity.Comunidad[ idComunidad=" + idComunidad + " ]";
    }
    
}
